/**
 * 判断是否为空
 */
export const validatenull = (val: unknown): boolean => {
  if (typeof val === "boolean") {
    return false;
  }
  if (typeof val === "number") {
    return false;
  }
  if (val instanceof Array) {
    if (val.length === 0) {
      return true;
    }
  } else if (val instanceof Object) {
    if (JSON.stringify(val) === "{}") {
      return true;
    }
  } else {
    if (val === "null" || val === null || val === "undefined" || val === undefined || val === "") {
      return true;
    }
    return false;
  }
  return false;
};

export const deviceDetection = () => {
  const userAgent = navigator.userAgent || navigator.vendor || window.opera;

  // Windows Phone 必须放在 Android 之前
  if (/windows phone/i.test(userAgent)) {
    return false; // 桌面设备
  }

  if (/android/i.test(userAgent)) {
    return true; // 移动设备
  }

  // iOS检测
  if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) {
    return true; // 移动设备
  }

  // 其他任何设备
  return false; // 桌面设备
};

/** 密码正则（密码格式应为6-20位数字、字母、符号的任意两种组合） */
export const VALIDATE_PASSWORD =
  /^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)]|[()])+$)(?!^.*[\u4E00-\u9FA5].*$)([^(0-9a-zA-Z)]|[()]|[a-z]|[A-Z]|[0-9]){8,18}$/;
